package com.newtouch.bxzs.common.base.em;

import java.util.ArrayList;
import java.util.List;

/**
 * 通知信息类型枚举类
 *
 * <p>
 * <b>History:</b>
 * <table border="1">
 * <tr>
 * <th>Date</th>
 * <th>Operator</th>
 * <th>Memo</th>
 * </tr>
 * <tr>
 * <td>2020/12/22</td>
 * <td>Amour</td>
 * <td>Create</td>
 * </tr>
 * </table>
 *
 * @author Amour
 * @version 1.0.0
 * @since 1.0.0
 */
public enum NotificationTypeEnum {
	// 公司通知
	NOTIFICATION_COMPANY_TYPE("1", "公司通知"),
	// 业务通知
	NOTIFICATION_BUSINESS_TYPE("2", "业务通知"),
	// 个人通知
	NOTIFICATION_PERSONAL_TYPE("3", "个人通知"),
	// 系统通知
	NOTIFICATION_SYSTEM_TYPE("4", "系统通知");
	/**
	 * 发布状态码
	 */
	private final String resultCode;
	/**
	 * 发布状态信息
	 */
	private final String statusMessage;

	/**
	 *
	 * @param resultCode
	 *            枚举码
	 * @param statusMessage
	 *            枚举值
	 */
	NotificationTypeEnum(String resultCode, String statusMessage) {
		this.resultCode = resultCode;
		this.statusMessage = statusMessage;
	}

	/**
	 * 获取通知类型枚举码
	 * 
	 * @return 整数包装类枚举码
	 */
	public String getResultCode() {
		return resultCode;
	}

	/**
	 * 获取通知类型枚举值
	 * 
	 * @return 枚举信息
	 */
	public String getStatusMessage() {
		return statusMessage;
	}

	/**
	 * 获取业务通知所有下属类型列表
	 * 
	 * @return 业务通知下属列表类型
	 */
	public List<String> getListBusinessType() {
		List<String> list = new ArrayList<>();
		/* 添加业务类型下属类型 */
		list.add(BusinessMessageEnum.POLICY_MESSAGE_REMINDER.getResultCode());
		list.add(BusinessMessageEnum.CUSTOMER_MESSAGE_REMINDER.getResultCode());
		list.add(BusinessMessageEnum.MARKETING_CONFERENCE_MESSAGE_REMINDER.getResultCode());
		list.add(BusinessMessageEnum.MARKETING_ACTIVITY_MESSAGE_REMINDER.getResultCode());
		list.add(BusinessMessageEnum.UPGRADE_MESSAGE_REMINDER.getResultCode());
		return list;
	}
}
